# 返回当前文件在系统中的路径，Android.mk文件开始时必须定义该变量。
LOCAL_PATH:= $(call my-dir)

# 表明清除上一次构建过程的所有全局变量，因为在一个 Makefile 编译脚本中，
# 会使用大量的全局变量，使用这行脚本表明需要清除掉所有的全局变量。
include $(CLEAR_VARS)

# 要编译的C或者Cpp的文件，注意这里不需要列举头文件，构建系统会自动帮助开发者依赖这些文件。
LOCAL_SRC_FILES:= robert.cpp    \
                  sendevent.cpp \
                  getevent.cpp

# 该模块的编译的目标名，用于区分各个模块，名字必须是唯一并且不包含空格的，
# 如果编译目标是 so 库，那么该 so 库的名字就是 lib 项目名 .so 。
LOCAL_MODULE:= robert

LOCAL_C_INCLUDES := 

# 编译C或者Cpp的编译标志，在实际编译的时候会发送给编译器。
LOCAL_CFLAGS :=

LOCAL_MODULE_TAGS:= optional

# PIE这个安全机制从4.1引入，但是Android L之前的系统版本
# 并不会去检验可执行文件是否基于PIE编译出的。因此不会报错。
# 但是Android L已经开启验证，如果调用的可执行文件不是基于PIE方式编译的，
# 则无法运行。
LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIE

# 构建可执行文件。
include $(BUILD_EXECUTABLE)


# 构建so文件。
# include $(BUILD_SHARED_LIBRARY)

